约定俗成: 一般用户上传的文件、图片、视频等都会存放在media文件夹下

1. media 多媒体文件的配置

  • 在根目录下创建media文件夹


  • 在 settings.py 配置文件中做相应的配置

# settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

MEDIA_URL = '/media/'

  • 注意: 

    • 当配置了 media 多媒体文件夹后,用户所上传的图片或文件都会默认保存在 media 文件夹下
    • 当配置了 media 多媒体文件夹后,FileField 或 IntegerField 字段类中 upload_to 参数所设置的文件夹默认会在 media 文件夹下创建
    • 当配置了 media 多媒体文件夹后,FileField 或 IntegerField 字段类中 upload_to 参数如果为空,那么用户所上传的文件默认会保存在 media 文件夹下


# models.py

class UserInfo(AbstractUser):
# upload_to: 文件夹路径,如果没有会自动创建,用于保存上传文件
    avatar = models.FileField(upload_to='avatars/', default="avatars/default.png")  # 如果配置 media 多媒体文件夹,那么 upload_to 参数所设置的文件夹默认会在 media 文件夹下创建

2. 通过网址直接访问media多媒体文件夹里面文件

  • 在一般情况下,media 多媒体文件不能像静态文件那样直接通过网址就可以访问了,而是需要在 urls.py 中进行配置才能通过网址进行访问

from django.views.static import serve
from django.conf import settings

urlpatterns = [
……

    # media 配置
    url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
]